package cn.open.feishu.alert.support;

import cn.open.feishu.alert.common.param.CardDirectAlertParam;

/**
 * @Description 飞书告警机器人接口定义
 * @Author fandy.lin
 * @Date 2021/9/8 上午9:54
 **/
public interface FeishuAlertService {
    /**
     * 即时:发送文本消息
     * @param alertText
     */
    void send(String alertText);

    /**
     * 即时:异常消息
     * @param e
     */
    void send(Exception e);

    /**
     * 即时:文本与异常消息
     * @param alertText
     * @param e
     */
    void send(String alertText,Exception e);

    /**
     * 即时:特定机器人发送文本消息
     * @param robotName
     * @param alertText
     */
    void send(String robotName,String alertText);

    /**
     * 即时:特定机器人发送文本与异常消息
     * @param robotName
     * @param alertText
     * @param e
     */
    void send(String robotName,String alertText,Exception e);

    /**
     * 即时:通过email直接发送告警文本给指定的人
     * @param param
     */
    void send(CardDirectAlertParam param);

    /**
     * 聚集:发送文本消息
     * @param alertText
     */
    void sendAwait(String alertText);

    /**
     * 聚集:异常消息
     * @param e
     */
    void sendAwait(Exception e);

    /**
     * 聚集:发送文本与异常消息
     * @param alertText
     * @param e
     */
    void sendAwait(String alertText,Exception e);

    /**
     * 聚集:特定机器人发送文本消息
     * @param robotName
     * @param alertText
     */
    void sendAwait(String robotName, String alertText);

    /**
     * 聚集:特定机器人发送文本与异常消息
     * @param robotName
     * @param alertText
     * @param e
     */
    void sendAwait(String robotName, String alertText, Exception e);

    /**
     * 聚集:特定机器人发送格式化文本消息(日志)
     * @param robotName
     * @param pattern
     * @param alertText
     */
    void sendAwait(String robotName, String pattern,String alertText);
}